package com.wuzhishan.news.mapper;

import com.wuzhishan.news.pojo.BlogArticle;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface articleMapper {
    /**
     * 获取文章信息（分页）
     * @param groupId
     * @param ord
     * @param page
     * @param pageSize
     * @return
     */
    List<BlogArticle> getAll(@Param("groupId") String groupId,@Param("ord") String ord, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    void add(BlogArticle article);

    int getCount(@Param("groupId") String groupId,@Param("ord") String ord, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    BlogArticle getArticleById(@Param("articleId") String articleId);

    /**
     * 获取最新文章
     * @param maxResults
     * @return
     */
    List<BlogArticle> latests(@Param("maxResults") long maxResults);

    /**
     * 获取热门文章
     * @param maxResults
     * @return
     */
    List<BlogArticle> hots(@Param("maxResults") long maxResults);

    /**
     * 获取热门用户文章信息
     * @param userId
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<BlogArticle> getOtherArticle(@Param("userId") Integer userId, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    int countArticleOfUser(Integer userId);

    List<BlogArticle> getRecommend(@Param("groudId") int groudId,@Param("pageIndex") int pageIndex,@Param("blogCount") int blogCount);

    int searchCount(@Param("word") String word);

    List<BlogArticle> searchArticle(@Param("word") String word, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    void hitPlus(String articleId);
}
